/**
 * 插件扩展js
 * createTime 2014-12-25
 */

/**
 * 扩展Bootstrap table插件
 */
$.extend($.fn.bootstrapTable.defaults,{
	cache:true,	//禁用ajax的缓存
	striped: true,					//使表格带有条纹
//	height:900,						//表格的高度，默认为空,类型为undefined
	pagination: true,				//分页工具栏,默认为false
	undefinedText:"-",				//定义默认的undefined显示文字
	sortName:"createTime",			//定义默认排序行
	sortOrder:"desc",				//定义排序的方式
	pageSize: 10,					//分页大小
	pageList: [10,15,20,50,100,200],//设置分页数的列表
	sidePagination:'server',		//定义分页在客户端还是服务器端
	search: true,					//启用搜索输入框
	searchAlign:"right",			//定义搜索栏对齐方式
	toolbarAlign:"left",			//定义工具栏对齐方式
	showColumns: true,				//是否显示表格(显示/隐藏列表)
	showRefresh: true,				//是否显示刷新按钮。
	clickToSelect: true				//点击行即可选中单选/复选框
});
/**
 * Bootstrap table工具栏添加方法
 */
function toAdd(methodName){
	parent.gDialog.fCreate({
		title:"<i class='fa fa-pencil-square-o'></i>&emsp;"+methodName,
		url:base+"/"+powerCode+"/toAdd",
		width:650
	}).show();
}
/**
 * Bootstrap table工具栏修改方法
 */
function updSelected(methodName,val){
	var id=getId(val);
	if(id!=""){
		parent.gDialog.fCreate({
			title:"<i class='fa fa-pencil-square-o'></i>&emsp;"+methodName,
			url:base+"/"+powerCode+"/toUpd?id="+id,
			width:650
		}).show();
	}
}
/**
 * Bootstrap table工具栏复制方法
 */
function copySelected(methodName,val){
	var id=getId(val);
	if(id!=""){
		parent.gDialog.fCreate({
			title:"<i class='fa fa-pencil-square-o'></i>&emsp;"+methodName,
			url:base+"/"+powerCode+"/toCopy?id="+id,
			width:650
		}).show();
	}
}
/**
 * Bootstrap table工具栏删除方法
 */
function delSelected(methodName,val){
	var ids=getIds(val);
	if(ids!=""){
		gDialog.fConfirm('确认执行','你确定执行删除操作么？',function(rs){
			if(rs){
				$.post(base+"/"+powerCode+"/del",{ids:ids},function(data){
					if(data=="succeed"){//操作成功
						$table.bootstrapTable('refresh',{url:base+"/"+powerCode+"/getData"});
						message_box.show('<h4>成功</h4>删除成功!','success');
					}else{
						message_box.show('<h4>失败</h4>'+data,"error");
					}
				},"text");
			}
		});
	}
}
/**
 * Bootstrap table工具栏查看方法
 */
function viewSelected(methodName,val){
	var id=getId(val);
	if(id!=""){
		parent.gDialog.fCreate({
			title:"<i class='fa fa-pencil-square-o'></i>&emsp;"+methodName,
			url:base+"/"+powerCode+"/view?id="+id,
			width:650
		}).show();
	}
}
/**
 * 获取选中的行
 * @returns rows
 */
function getSelectedRows(){
	var rows=$table.bootstrapTable("getSelections");
	if(rows==null||rows.length<1){
		unSelectedAlert();
		return null;
	}else{
		return rows;
	}
}
/**
 * 获取单个id
 * @param val
 * @returns id
 */
function getId(val){
	var id="";
	if(val!=null&&(typeof(val)=="string")){
		id=val;
	}else{
		var rows=getSelectedRows();
		if(rows!=null){
			if(rows.length>1){
				selectedOneAlert();
			}else{
				id=rows[0].id;
			}
		}
	}
	return id;
}
/**
 * 获取id的集合
 * @param val
 * @returns ids
 */
function getIds(val){
	var ids="";
	if(val!=null&&(typeof(val)=="string")){
		ids=val;
	}else{
		var rows=getSelectedRows();
		if(rows!=null){
			for(var i=0,len=rows.length;i<len;i++){
				ids+=rows[i].id+",";
			}
			ids=ids.substring(0,ids.length-1);
		}
	}
	return ids;
}
/**
 * 格式化日期
 * @param format
 * @returns
 */
Date.prototype.format = function(format) {
	var o = {
		"M+" : this.getMonth() + 1, // month
		"d+" : this.getDate(), // day
		"h+" : this.getHours(), // hour
		"m+" : this.getMinutes(), // minute
		"s+" : this.getSeconds(), // second
		"q+" : Math.floor((this.getMonth() + 3) / 3), // quarter
		"S" : this.getMilliseconds()
	};

	if (/(y+)/.test(format)) {
		format = format.replace(RegExp.$1, (this.getFullYear() + "")
				.substr(4 - RegExp.$1.length));
	}

	for ( var k in o) {
		if (new RegExp("(" + k + ")").test(format)) {
			format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k]
					: ("00" + o[k]).substr(("" + o[k]).length));
		}
	}
	return format;
};
/**
 * 提示未选择数据
 */
function unSelectedAlert(){
	message_box.show('<h4>提示</h4>请先选择数据再进行操作!','info');
}
/**
 * 提示只能选择一行
 */
function selectedOneAlert(){
	message_box.show('<h4>提示</h4>只能选择一行数据操作!','info');
}
/**
 *格式化时间类型
 */
function formatDate(value,row,index){
	return new Date(value).format("yyyy-MM-dd hh:mm:ss");
}
/**
 * 格式化数值,保留number位小数
 */
function formatNumber(value,row,index,number){
	if(value==null||value==""){
		return "0";
	}else{
		return Number(value).toFixed(number);
	}
}